home *** CD-ROM | disk | FTP | other *** search
/ Computer Select (Limited Edition) / Computer Select.iso / pcc / v04n12 / windoc.exe / GLOBCODE.BAS < prev    next >
Encoding:
BASIC Source File  |  1991-11-01  |  11.6 KB  |  474 lines

  1. DefInt A-Z
  2.  
  3. Sub fullpath ()
  4. If Right$(editpath, 1) <> "\" Then editpath = editpath + "\"
  5. editfile = editpath + editfile
  6. End Sub
  7.  
  8. Sub waitsecs (secs)
  9.     start! = Timer
  10.     While Timer < start! + secs
  11.     temp = DoEvents()
  12.     Wend
  13. End Sub
  14.  
  15. Sub newfile ()
  16. screen.mousepointer = 1
  17.  
  18.  
  19. ' Select Case Right$(editfile, 3)
  20. ' Case "sam"
  21.     
  22. RunProg$ = "C:\amipro\amipro.exe "
  23. AppName$ = "Ami Pro"
  24.  
  25. ' Case Else
  26. ' Screen.mousepointer = 1: Exit Sub
  27. ' End Select
  28.  
  29.  
  30. If Not Loaded(AppName$) Then
  31. T = Shell(RunProg$, 4)
  32. Else
  33. AppActivate (AppName$)
  34. If IsIconic(LastWindowHandle) Then
  35. T = PostMessage(LastWindowHandle, WM_SYSCOMMAND, SC_RESTORE, 0)
  36. waitsecs 1
  37. End If
  38. End If
  39. Quote$ = Chr$(34)
  40. CR$ = Chr$(13)
  41. NewCommand$ = "[new]"
  42. If actions.Text1.LinkMode = NONE Then
  43. actions.Text1.LinkTopic = "amipro|system"
  44. actions.Text1.LinkMode = COLD
  45. actions.Text1.LinkTimeOut = -1
  46. End If
  47. waitsecs 1
  48. actions.Text1.LinkExecute NewCommand$
  49. actions.Text1.LinkMode = NONE
  50. Exit Sub
  51. screen.mousepointer = 1
  52. End Sub
  53.  
  54. Sub printfile ()
  55. getfile
  56. If editfile = "" Then Exit Sub
  57. screen.mousepointer = 11
  58. Select Case Right$(editfile, 3)
  59. Case "sam"
  60. RunProg$ = "C:\amipro\amipro.exe "
  61. AppName$ = "Ami Pro"
  62. Case "smm"
  63. RunProg$ = "C:\amipro\amipro.exe "
  64. AppName$ = "Ami Pro"
  65. Case Else
  66. screen.mousepointer = 1: Exit Sub
  67. End Select
  68. If Not Loaded(AppName$) Then
  69.     X = Shell(RunProg$ + " /p " + editfile, 2)
  70. Else
  71.     AppActivate (AppName$)
  72.         If IsIconic(LastWindowHandle) Then
  73.         X = PostMessage(LastWindowHandle, WM_SYSCOMMAND, SC_RESTORE, 0)
  74.         waitsecs 1
  75.         End If
  76.     SendKeys "%FO" + editfile + "~", TRUE
  77.     '   waitsecs 1
  78.     SendKeys "%WC", TRUE
  79.     '   waitsecs 1
  80.     SendKeys "%FP", TRUE
  81.     '   waitsecs 1
  82.     SendKeys "~", TRUE
  83. End If
  84. waitsecs 1
  85. screen.mousepointer = 1
  86. End Sub
  87.  
  88. Sub DeleteFile ()
  89. getfile
  90. If editfile = "" Then Exit Sub
  91. boxtype = MB_OkCancel + MB_iconexclamation
  92. msg$ = "Delete " + editfile + "?"
  93. response = MsgBox(msg$, boxtype, "Delete File")
  94.  
  95.     Select Case response
  96.     Case 1
  97.      On Error GoTo notfound
  98.      Kill editfile
  99.      On Error GoTo 0
  100.      DeleteRecord
  101.     Case 2
  102.       Exit Sub
  103.     End Select
  104. Exit Sub
  105.  
  106. notfound:
  107. Resume Next
  108.  
  109. End Sub
  110.  
  111. Sub ExitDocMan ()
  112.      CleanUp
  113.      End
  114. End Sub
  115.  
  116. Sub AddFileEntry ()
  117.  'increment last record
  118.  'build record
  119.  lastrecord = lastrecord + 1
  120.  recordvar.recordnum = lastrecord + 1
  121.  recordvar.Description = OpenDM.Description.text
  122.  recordvar.file = OpenDM.Text1(0).text
  123.  recordvar.date = OpenDM.Text1(2).text
  124.  recordvar.owner = OpenDM.Text1(1).text
  125.  recordvar.key1 = OpenDM.Text1(4).text
  126.  recordvar.key2 = OpenDM.Text1(5).text
  127.  recordvar.key3 = OpenDM.Text1(6).text
  128.  recordvar.key4 = OpenDM.Text1(7).text
  129. ' opendm.files.listindex = lastrecord - 1
  130.  recordvar.title = OpenDM.Files.list(Listindex)
  131. Put filenum, lastrecord, recordvar
  132. addkeys
  133. End Sub
  134.  
  135. Function fileopener (NameToUse$, Mode, recordlen) As Integer
  136. '   opens a file in specified address mode
  137. '   Arguements: Nametouse$ == valid filename
  138. '               mode--file access mode
  139. '               recordlen--length of one record
  140. Const REPLACEFILE = 1, READFILE = 2, ADDTOFILE = 3
  141. Const RANDOMFILE = 4, BINARYFILE = 5
  142. OpenFileNum = FreeFile
  143. On Error GoTo OPENERERROR
  144. Select Case Mode
  145. Case REPLACEFILE
  146. Open NameToUse$ For Output As OpenFileNum
  147. Case READFILE
  148. Open NameToUse$ For Input As OpenFileNum
  149. Case ADDTOFILE
  150. Open NameToUse$ For Append As OpenFileNum
  151. Case RANDOMFILE
  152. Open NameToUse$ For Random As OpenFileNum Len = recordlen
  153. lastrecord = LOF(OpenFileNum) \ Len(recordvar)
  154. Case BINARYFILE
  155. Open NameToUse$ For Binary As OpenFileNum
  156. Case Else
  157. Exit Function
  158. End Select
  159. fileopener = OpenFileNum
  160. Exit Function
  161.  
  162. OPENERERROR:
  163. action = FileErrors(Err, NameToUse$)
  164. Select Case action
  165. Case 0
  166. Resume
  167. Case Else
  168. fileopener = 0
  169. End
  170. End Select
  171. End Function
  172.  
  173. Function FileErrors (Errval As Integer, Filename As String) As Integer
  174.  
  175. 'returns    0--resume               2--unrecoverable error
  176. '           1--resume next          3--unrecognized error
  177. msgtype = MB_iconexclamation + 2
  178.  
  179. Select Case Errval
  180.     Case ERR_DEVICEUNAVAILABLE 'error 68
  181.         msg$ = "Device unavailable "
  182.     Case ERR_DISKNOTREADY
  183.         msg$ = "Disk not ready"
  184.     Case ERR_DEVICEIO
  185.         msg$ = "Internal disk error."
  186.     Case ERR_DISKFULL
  187.         msg$ = "Disk full."
  188.     Case ERR_BADFILENAMEORNUMBER
  189.         msg$ = Filename + " is an illegal filename."
  190.     Case err_PATH_FILEACCESSERROR, ERR_PATHNOTFOUND
  191.         msg$ = "The path " + Filename + " doesn't exist."
  192.     Case ERR_BADFILEMODE
  193.         msg$ = "Can't open " + Filename + " for that kind of access."
  194.     Case ERR_FILEALREADYOPEN
  195.         msg$ = Filename + " already open."
  196.     Case ERR_INPUTPASTENDOFFILE
  197.         msg$ = Filename + " has a nonstandard end of file marker,"
  198.         msg$ = msg$ + " or an attempt was made to read beyond"
  199.         msg$ = msg$ + " the end of the file."
  200.     Case ERR_FILENOTFOUND
  201.         msg$ = Filename + " not found."
  202.     Case Else
  203.         msg$ = "File or disk error associated with " + Filename + "! Error code: " + Str$(Errval)
  204.     End Select
  205.     response = MsgBox(msg$, msgtype, "Disk Error")
  206.     Select Case response
  207.         Case IDOK, IDRETRY
  208.             FileErrors = 0
  209.         Case IDIGNORE
  210.             FileErrors = 1
  211.         Case IDCANCEL, IDABORT
  212.             FileErrors = 2
  213.         Case Else
  214.             FileErrors = 3
  215.         End Select
  216.     End Function
  217.  
  218. Sub writechangedrecord ()
  219.  If NewRecordFlag = TRUE Then Exit Sub
  220.  recordvar.title = OpenDM.Files.list(wasrecordchanged)
  221.  recordvar.Description = OpenDM.Description.text
  222.  recordvar.key1 = OpenDM.Text1(4).text
  223.  recordvar.key2 = OpenDM.Text1(5).text
  224.  recordvar.key3 = OpenDM.Text1(6).text
  225.  recordvar.key4 = OpenDM.Text1(7).text
  226.  Put filenum, wasrecordchanged + 1, recordvar
  227.  wasrecordchanged = -1
  228.  addkeys
  229. End Sub
  230.  
  231. Sub ReadSelectedRecord ()
  232. If OpenDM.Files.Listindex < 0 Then Exit Sub
  233. If (OpenDM.Files.Listindex + 1) <= lastrecord And lastrecord > 0 Then
  234.  Get filenum, OpenDM.Files.Listindex + 1, recordvar
  235.  OpenDM.Description.text = RTrim$(recordvar.Description)
  236.  OpenDM.Text1(0).text = RTrim$(recordvar.file)
  237.  OpenDM.Text1(2).text = RTrim$(recordvar.date)
  238.  OpenDM.Text1(1).text = RTrim$(recordvar.owner)
  239.  OpenDM.Text1(4).text = RTrim$(recordvar.key1)
  240.  OpenDM.Text1(5).text = RTrim$(recordvar.key2)
  241.  OpenDM.Text1(6).text = RTrim$(recordvar.key3)
  242.  OpenDM.Text1(7).text = RTrim$(recordvar.key4)
  243.  wasrecordchanged = -1
  244. End If
  245. End Sub
  246.  
  247. Sub DeleteRecord ()
  248. Dim tempvar As RecordType
  249. position = OpenDM.Files.Listindex + 1
  250. For i = position To lastrecord - 1
  251. Get filenum, i + 1, tempvar
  252. tempvar.recordnum = i
  253. Put filenum, i, tempvar
  254. Next i
  255. lastrecord = lastrecord - 1
  256. If lastrecord = 0 Then clearfields
  257. OpenDM.Files.RemoveItem position - 1
  258. OpenDM.Files.Listindex = lastrecord - 1
  259. OpenDM.Files.Refresh
  260. End Sub
  261.  
  262. Sub CleanUp ()
  263.     If wasrecordchanged > -1 Then
  264.         writechangedrecord
  265.     End If
  266. NewFileName$ = "\vb\docman\DM.TMP"
  267. modetouse = 4
  268. recordcount = lastrecord
  269. On Error GoTo cleanuperrs
  270. cleanupfilenum = fileopener(NewFileName$, modetouse, Len(recordvar))
  271. On Error Resume Next
  272. For i = 1 To recordcount
  273. Get filenum, i, recordvar
  274. Put cleanupfilenum, i, recordvar
  275. Next i
  276. Close
  277. Kill ExePath + "DOCMAN.DAT"
  278. Name NewFileName$ As ExePath + "DOCMAN.DAT"
  279. Exit Sub
  280.  
  281.  
  282. cleanuperrs:
  283. action = FileErrors(Err, NewFileName$)
  284. Select Case action
  285. Case 0
  286. Resume
  287. Case Else
  288. End
  289. Exit Sub
  290. End Select
  291.  
  292. End Sub
  293.  
  294. Sub clearfields ()
  295. OpenDM.Description.text = ""
  296. OpenDM.Text1(0).text = ""
  297. OpenDM.Text1(1).text = ""
  298. OpenDM.Text1(2).text = ""
  299. OpenDM.Text1(4).text = ""
  300. OpenDM.Text1(5).text = ""
  301. OpenDM.Text1(6).text = ""
  302. OpenDM.Text1(7).text = ""
  303. End Sub
  304.  
  305. Sub addkeys ()
  306.  Finddlg.list1.AddItem OpenDM.Text1(4).text
  307.  Finddlg.list1.AddItem OpenDM.Text1(5).text
  308.  Finddlg.list1.AddItem OpenDM.Text1(6).text
  309.  Finddlg.list1.AddItem OpenDM.Text1(7).text
  310.  items = Finddlg.list1.listcount
  311.  check = 0
  312.  Finddlg.list1.Refresh
  313.  NewKeys = 0
  314.  Do While check < (items)
  315.     If UCase$(RTrim$(Finddlg.list1.list(check))) <> UCase$(RTrim$(Finddlg.list1.list(check + 1))) And RTrim$(Finddlg.list1.list(check)) <> "" Then
  316.         check = check + 1
  317.         NewKeys = 1
  318.     Else
  319.         Finddlg.list1.RemoveItem check
  320.         items = items - 1
  321.     End If
  322.     Loop
  323.  
  324.    If NewKeys = 0 Then Exit Sub
  325.    WriteKeyFields
  326. End Sub
  327.  
  328. Sub opendoc ()
  329. screen.mousepointer = 11
  330. getfile
  331. If editfile = "" Then Exit Sub
  332. Select Case Right$(editfile, 3)
  333. Case "sam"
  334. RunProg$ = "C:\amipro\amipro.exe "
  335. AppName$ = "Ami Pro"
  336. Case "smm"
  337. RunProg$ = "C:\amipro\amipro.exe "
  338. AppName$ = "Ami Pro"
  339. Case Else
  340. screen.mousepointer = 1: Exit Sub
  341. End Select
  342.  
  343. If Not Loaded("Ami Pro") Then
  344. X = Shell(RunProg$ + editfile, 2)
  345. Arrange$ = "%WT"
  346. Else
  347. AppActivate (AppName$)
  348. If IsIconic(LastWindowHandle) Then
  349. X = PostMessage(LastWindowHandle, WM_SYSCOMMAND, SC_RESTORE, 0)
  350. Arrange$ = "%WC"
  351. End If
  352. SendKeys "%FO" + editfile + "~", TRUE
  353. End If
  354. SendKeys Arrange$, TRUE
  355. screen.mousepointer = 1
  356. End Sub
  357.  
  358. Sub getfile ()
  359. editfile = ""
  360. editpath = ""
  361. editfile = recordvar.file
  362. length = Len(editfile)
  363. For i = length To 0 Step -1
  364. If Asc(Right$(editfile, 1)) < 33 Or Asc(Right$(editfile, 1)) > 122 Then editfile = Left$(editfile, i)
  365. Next i
  366. length = Len(editfile)
  367. If length = 0 Then Exit Sub
  368. End Sub
  369.  
  370. Function Loaded (Caption$)
  371.     LastWindowHandle = FindWindow(0&, Caption$)
  372.     If LastWindowHandle > 0 Then Loaded = -1
  373. End Function
  374.  
  375. Sub WriteKeyFields ()
  376. KEYSFILENUM = FreeFile
  377. On Error GoTo unloaderror
  378. keysfile$ = ExePath + "dmkeys.dat"
  379. On Error Resume Next
  380. Kill keysfile$
  381. On Error GoTo unloaderror
  382. Open keysfile$ For Output As KEYSFILENUM
  383. items = Finddlg.list1.listcount
  384. check = 0
  385. Do While check < (items)
  386. out$ = Finddlg.list1.list(check)
  387. Print #KEYSFILENUM, out$
  388. check = check + 1
  389. Loop
  390. Close KEYSFILENUM
  391. Exit Sub
  392.  
  393. unloaderror:
  394. action = FileErrors(Err, NewFileName$)
  395. Select Case action
  396. Case 0
  397. Resume
  398. Case Else
  399. Exit Sub
  400. End Select
  401.  
  402. End Sub
  403.  
  404. Sub GetPath ()
  405. Const GCW_HMODULE = (-16)
  406. ExePath = String$(127, 0)
  407. X = GetModuleFilename(GetClassWord(OpenDM.Hwnd, GCW_HMODULE), ExePath, Len(ExePath))
  408. X = Len(ExePath)
  409. Do While X > 0
  410. If Mid$(ExePath, X, 1) = "\" Then Exit Do
  411. X = X - 1
  412. Loop
  413. If X = 0 Then
  414. ExePath = "\"
  415. Else ExePath = Left$(ExePath, X)
  416. End If
  417. End Sub
  418.  
  419. Sub PicFrame (F As Control, C As Control)
  420.   Lft = C.Left - 20
  421.   Tp = C.top - 20
  422.   Ht = C.Height + 40
  423.   Wdth = C.Width + 40
  424.   Call BoxDraw(F, Tp, Lft, Ht, Wdth)
  425. End Sub
  426.  
  427. Sub BoxDraw (F As Control, Tp As Integer, Lft As Integer, Ht As Integer, Wdth As Integer)
  428.   Offset = 3
  429.   BigOffset = 5
  430.   DW = 2
  431.   F.DrawWidth = DW
  432.  
  433. F.forecolor = &HE0E0E0
  434. 'bottom:
  435.   F.Line (Lft + DW, Tp + Ht + Offset)-(Lft - DW + Wdth, Tp + Ht + Offset)
  436.  
  437. 'right:
  438.   F.Line (Lft + Wdth + Offset, Tp + DW)-(Lft + Wdth + Offset, Tp + Ht + Offset - DW)
  439.   
  440.   
  441.   F.forecolor = &H808080
  442. 'top:
  443.  F.Line (Lft + DW - BigOffset, Tp - BigOffset)-(Lft - DW + Wdth + BigOffset, Tp - BigOffset)
  444.  
  445. 'left:
  446. F.Line (Lft - BigOffset, Tp - BigOffset + DW)-(Lft - BigOffset, Tp + Ht + BigOffset - DW)
  447.  
  448.  
  449. End Sub
  450.  
  451. Sub BoxDraw2 (F As Control, Tp As Integer, Lft As Integer, Ht As Integer, Wdth As Integer, DW As Integer)
  452.   Offset = 3
  453.   BigOffset = 5
  454.   F.DrawWidth = DW
  455.  
  456. F.forecolor = &H808080
  457. 'bottom:
  458.   F.Line (Lft + DW, Tp + Ht + Offset)-(Lft - DW + Wdth, Tp + Ht + Offset)
  459.  
  460. 'right:
  461.   F.Line (Lft + Wdth + Offset, Tp + DW)-(Lft + Wdth + Offset, Tp + Ht + Offset - DW)
  462.   
  463.   
  464.   F.forecolor = &HE0E0E0
  465. 'top:
  466.  F.Line (Lft + DW - BigOffset, Tp - BigOffset)-(Lft - DW + Wdth + BigOffset, Tp - BigOffset)
  467.  
  468. 'left:
  469. F.Line (Lft - BigOffset, Tp - BigOffset + DW)-(Lft - BigOffset, Tp + Ht + BigOffset - DW)
  470.  
  471.  
  472. End Sub
  473.  
  474.